
const getLocation = (cb) => {
	// 获取用户是否开启 授权获取当前的地理位置、速度的权限。
	uni.getSetting({
		success(res) {
			console.log('权限',res)
			// 如果没有授权
			if (!res.authSetting['scope.userLocation']) {
				// 则拉起授权窗口
				uni.authorize({
					scope: 'scope.userLocation',
					success() {
						//点击允许后--就一直会进入成功授权的回调 就可以使用获取的方法了
						console.log('此时获取用户授权了')
						cb?.()
					},
					fail(error) {
						//点击了拒绝授权后--就一直会进入失败回调函数--此时就可以在这里重新拉起授权窗口
						console.log('拒绝授权', error)
						uni.showModal({
							title: '提示',
							content: '若点击不授权，将无法使用位置功能',
							cancelText: '不授权',
							cancelColor: '#999',
							confirmText: '授权',
							confirmColor: '#f94218',
							success(res) {
								console.log('弹窗内授权', res)
								if (res.confirm) {
									uni.openSetting({
										success(res) {
											// 获得了授权
											console.log('获取的了权限',res.authSetting);
											cb?.()
										},
										fail(res) {
											console.log('出错', res)
										},
										complete(res) {
											console.log('完成', res)
										}
									})
								} else if (res.cancel) {
									// 选择弹框内 不授权
									console.log('用户点击不授权')
								}
							},
							fail(res) {
								console.log('再次授权失败', res)
							},
							complete(res) {
								console.log("完成后弹出", res)
							}
						})
					}
				})
			} else {
				//有权限则直接获取
				console.log("有权限则直接获取")
				cb?.()
			}
		}
	})
};

export {
	getLocation,
}